program LECROM;

uses crt;
var k, g, f, b, x: integer;
    d: real;
    h: string;
    c: boolean;
    a: text;

BEGIN
clrscr;
writeln(' TAILLE MEMOIRE A LIRE (en k-octets) ? ');
readln(k);
k:=(k*1024)-1;
writeln;
writeln(' NOM A DONNER AU FICHIER (sans extension) ? ');
readln(h);
h:=h+'.rom';
assign(a,h);
rewrite(a);     {creation du fichier.rom}
writeln;
writeln(' ATTENTION ! LE +5V DOIT ETRE COUPE ! ');
port[888]:=64;
writeln('CONNECTER LA MEMOIRE A LIRE, puis presser ENTER');
readln;
clrscr;
writeln(' APPLIQUER LE +5V, puis presser ENTER ');
readln;
writeln;
writeln('--------- LECTURE EN COURS ----------');
writeln;
for g:=0 to k do        {boucle de lecture de toutes les adresses}
    begin
    d:=0;
    for f:=0 to 7 do
        begin
        port[888]:=f;
        delay(25); {temporisation necessaire vu la vitesse du PC}
        b:=port[889];
        if (b and 64)=64 then d:=d+(exp(f*ln(2)));
        x:=round(d);
        end;
    port[888]:=32;
    write(a,' ',x,' ');
    end;
clrscr;
writeln(' OPERATION DE LECTURE TERMINEE ');
writeln(' COUPER LE +5V ');
writeln(' puis retirer la m‚moire ');
writeln(' TAPER ENTER POUR SORTIR DU PROGRAMME ');
close(a);
readln;
END.
